June 07, 2005

Apple goes to Intel

Apple CEO promises two-year Intel conversion. This is the biggest tech story to happen an a long time and I miss it due to my bloody ankle.

This is maybe a good thing, maybe a bad thing. It is very risky for Apple. But lets get one thing strait first, OS X is not going to be able to run on any old white box PC. No way no how. Apple is a hardware company, it writes software in order to sell more hardware. The last time they played with allowing clones it very nearly killed the company. Sure some geeks will find ways of cobbling together a box on the cheap to run OS X, but it won't the easy and will probably involve buying a real Apple motherboard and firmware, exactly as some geeks have done with Apple running on PowerPC.

Now Apple have made a CPU transition before from 68k to PPC, and it went seamlessly. The OS didn't run as fast as it could as large parts where being run through a 68k emulator but from an end users point of view there was no noticeable change. This time the core UNIX parts of the OS are already run on x86, and in fact the open source Darwin project that maintains them has targeted x86 primarily for years. The development libraries that form the Cocoa environment have been run on x86 before, during the time they where developed by NeXT (before it took over Apple) programs had Fat Binaries (one binary file containing the program compiled for several hardware platforms and a switch to the OS which to use) that users could use on any of four very different hardware platforms. Fat Binaries also cushioned the switch between 68k and PPC.

If anyone can pull this off Apple can, as they demonstrated with the 68k PPC switch.

The problem is pulling their independent software vendors (ISVs) along with them. This can be a problem as even with a good emulator layer emulated software will always be slower than native optimized stuff. So in order to give the best performance all the ISVs will have to port all there software across. If the code is properly written and abstracted then this should be a simple case of changing the target architecture and hitting compile.

However as someone that works in the software development industry I can guarantee that it won't be that easy. Some of the problems will be due to optimization for the old platform. PPC has more registers than x86, a different byte order, and a special vector unit called Ativec. In order to wring the most speed out of there software many developers will target these features directly which is going mean that that piece has to be rewritten to operate on the new platform. Whilst maintaining exactly the same results, including any weird quirks, as before. It's these weird quirks that are going to bite people. Many of them will not even have been known about before this brings them to the fore, and will often not have anything to do with the actual operation of the system. But they will be expected and so when they do not happen could have side effects elsewhere. Rewriting the bits that it turns out where reliant on the quirks isn't an option either as that will simply spread the problem as yet more pieces reliant on them become unstable because of quirks that they where reliant on, and so on until you end up rewriting large chunks of the entire program.

Much of this would be avoided if the developers where given enough time to make sure that all the software is properly abstracted in the first place. But that won't happen, since as software always gets delayed simply due to it's complexity, the developers never really have the time to do that for everything. It could also be avoided if the software was written in a language where side effects are have to produce, such as Lisp, but that does not happen either because C++ (a language I personally have very little time for) is fashionable with the managers that actually run large ISVs, see Paul Graham for why, he's talking mainly about Java but the same arguments apply (Jave evleved out of C++, and is in many ways actually better).

Apple needs it's ISVs, as they write the majority of the software that turns a computer from the worlds most complex and expensive paperweight into the the worlds most flexible and useful tool. In Apples case the one that it particularly needs is Adobe, the makers of Photoshop. Apple's main market is graphics professionals and for them Photoshop is a must have. There is simply nothing else that comes close to it in terms of quality. The GIMP may be good value for money, in terms of getting actual work done Photoshop blows it away. One of the main reasons that the Carbon framework (the same libraries as Mac OS 9, but able to run in a modern UNIX type operating system and access the OS X graphics libraries) exists is that Adobe did not want to port Photoshop to Cocoa. Getting them to port to OSX on Intel could be a problem.


Post a Comment

<< Home